package modelos.daos;

import controladores.ManejadorBaseDatos;
import modelos.pojos.Empleado;
import java.sql.*;
import java.util.List;
import modelos.pojos.FacturaSalaEvento;

public class FacturaSalaDAO {

    private static Connection con;
    public static List<Empleado> resultados;

    public static void crear(FacturaSalaEvento facturaSalaEvento) throws SQLException, Exception {

        ManejadorBaseDatos mbd = ManejadorBaseDatos.getInstancia();
        mbd.conectar();
        con = mbd.getConexion();

        if (con == null) {
            throw new SQLException("Ha ocurrido un error al intentar conectarse con la base de datos");
        }

        PreparedStatement pst = null;

        try {
            pst = con.prepareStatement("Insert Into FacturaSala values(?,?,?,?,?)");
            pst.setString(1, null);
            pst.setInt(2, facturaSalaEvento.getReservaSala().getId());
            pst.setString(3, null);
            pst.setString(4, null);
            pst.setString(5, facturaSalaEvento.getEstado() + "");
            pst.executeUpdate();


        } finally {

            if (pst != null) {
                pst.close();
            }
        }
    }

    public static void cerrar(FacturaSalaEvento facturaSalaEvento) throws SQLException, Exception {

        ManejadorBaseDatos mbd = ManejadorBaseDatos.getInstancia();
        mbd.conectar();
        con = mbd.getConexion();

        if (con == null) {
            throw new SQLException("Ha ocurrido un error al intentar conectarse con la base de datos");
        }

        PreparedStatement pst = null;

        try {
            pst = con.prepareStatement("Update FacturaSala, CheckInSala Set fechaFacturacion=?,valor=?,FacturaSala.estado='f', CheckInSala.estado='t' Where FacturaSala.idReservaSala=? and CheckInHabitacion.idReservaSala=?;");
            pst.setTimestamp(1, new Timestamp(facturaSalaEvento.getFechaFacturacion().getTime()));
            pst.setDouble(2, facturaSalaEvento.getValor());
            pst.setInt(3, facturaSalaEvento.getReservaSala().getId());
            pst.setInt(4, facturaSalaEvento.getReservaSala().getId());
            pst.executeUpdate();


        } finally {

            if (pst != null) {
                pst.close();
            }
        }
    }
}
